package be.groept.ace.cursusplanning.model;

import be.groept.ace.cursusplanning.persistency.IPersistentieController;
import be.groept.ace.cursusplanning.persistency.IPersistentieProvider;
import be.groept.ace.cursusplanning.persistency.Persisteerbaar;

/**
 * 
 * @author Gouke
 *
 */
public class VrijeCursist extends Cursist implements Persisteerbaar {

	private IPersistentieProvider pProvider;
	
	String nationaliteit = "";

	/**
	 * stelt een nieuwe vrije cursist in
	 * @param cursistNummer
	 * 			nummer van de cursist
	 * @param naam
	 * 			naam van de cursist
	 */
	public VrijeCursist(String cursistNummer, String naam) throws IllegalArgumentException{
		super(cursistNummer,naam);
	}
	
	/**
	 * Geeft de nationaliteit van de cursist terug
	 */
	public String getNationaliteit() {
		return nationaliteit;
	}
	
	/** 
	 * We zouden hier een Enum met nationaliteiten kunnen maken
	 * @param nationaliteit
	 */
	public void setNationaliteit(String nationaliteit) {
		
		if (nationaliteit == null) throw new IllegalArgumentException ("Geen geldige nationaliteit");
		
		for(int i = 0; i < nationaliteit.length(); i++){
			if (Character.isLetter( nationaliteit.charAt(i)) == false){
				throw new IllegalArgumentException ("Geen geldige nationaliteit");
			}
		}

		this.nationaliteit = nationaliteit;
	}

	@Override
	public String getTypeCursist() {
		return "Vrije cursist";
	}

	@Override
	public Object[] getInfoToBeSaved(IPersistentieController pController)
	
	{
		return pProvider.getInfoToBeSaved(pController);

	}
	public IPersistentieProvider getPersistentieProvider(){
		return this.pProvider;
	}
	public void setPersistentieProvider(IPersistentieProvider provider){
		this.pProvider = provider;
		super.setPersistentieProvider(provider);
		provider.setTarget(this);
	}

	
}
